package com.mobile.service.inter.system;

import com.mobile.util.PageData;

import java.util.List;

/**
 * 组织管理模块Service层
 */
public interface OrganizationService {
    /**
     * 查询单位信息（分页）
     * @param pageData
     * @return
     */
    List<PageData> companyList(PageData pageData) throws Exception;

    /**
     * 查询部门信息
     * @param page
     * @return
     */
    List<PageData> getOrganizationTreeList(PageData pd) throws Exception;


    /**
     * 获取单位信息
     * @param pageData
     * @return
     */
    List<PageData> getCompanyBySerch(PageData pageData) throws Exception;

    /**
     * 获取单位信息
     * @param pageData
     * @return
     */
    List<PageData> getCompanyByfactoryCode(PageData pageData) throws Exception;

    /**
     * 获取部门信息
     * @param pageData
     * @return
     */
    List<PageData> getOrganizationBySerch(PageData pageData) throws Exception;

    /**
     * 获取部门信息
     * @param pageData
     * @return
     */
    List<PageData> getDepartmentByNameAndcompanyId(PageData pageData) throws Exception;

    /**
     * 单位新增
     * @param pageData
     * @return
     */
    int insertCompany(PageData pageData) throws Exception;

    /**
     * 部门新增
     * @param pageData
     * @return
     */
    int insertOrganization(PageData pageData) throws Exception;

    /**
     * 修改单位
     * @param pageData
     * @return
     */
    int updateCompany(PageData pageData) throws Exception;

    /**
     * App修改单位
     * @param pageData
     * @return
     */
    int appUpdateCompany(PageData pageData) throws Exception;

    /**
     * 修改部门
     * @param pageData
     * @return
     */
    int updateDepartment(PageData pageData) throws Exception;

    /**
     * 删除单位
     * @param array
     * @return
     */
    int deleteCompanyByBatch(String[] array) throws Exception;

    /**
     * 删除部门
     * @param array
     * @return
     */
    int deleteOrganizationByBatch(String[] array) throws Exception;

    /**
     * App获取单位信息
     * @param pageData
     * @return
     */
    List<PageData> getAppCompanyBySerch(PageData pageData) throws Exception;

    /**
     * App获取部门信息
     * @param pageData
     * @return
     */
    List<PageData> getAppDepartmentBySerch(PageData pageData) throws Exception;

    /**
     * 用于查询当前单位与其下属单位编号
     * @param companyId
     * @return
     * @throws Exception
     */
    String getCompanyRecord(Integer companyId) throws Exception;
    /**
     * 根据id获取单位
     * @param companyId
     * @return
     * @throws Exception
     */

    public PageData getCompanyById(Integer companyId)throws Exception;

    /**
     * 获取关联单位穿梭框数据
     * @param pd
     * @return
     * @throws Exception
     */
    List<PageData> getCompanyListNotInmySelf(PageData pd) throws Exception;
    /**
     * 获取组织所有上级id
     */
    List<String> getAllParentId(String organizationId, List<String> list) throws Exception;
    /**
     * 获取组织所有下级id
     */
    List<String> getAllLowId(String organizationId, List<String> list) throws Exception;
}
